#include "BulletCollision/BroadphaseCollision/btSimpleBroadphase.h"
#ifdef __cplusplus
extern "C" {
#endif
btSimpleBroadphaseProxy* bullet_NewbtSimpleBroadphaseProxy(){
	btSimpleBroadphaseProxy* wrap_out = new btSimpleBroadphaseProxy();
	return wrap_out;
}

btSimpleBroadphaseProxy* bullet_NewbtSimpleBroadphaseProxy1(btVector3* minpt,btVector3* maxpt,int shapeType,void* userPtr,int collisionFilterGroup,int collisionFilterMask){
	btVector3 const& c_arg_minpt=(btVector3 const&)(*minpt);
	btVector3 const& c_arg_maxpt=(btVector3 const&)(*maxpt);
	int c_arg_shapeType=shapeType;
	void * c_arg_userPtr=(void *)(void*)(userPtr);
	int c_arg_collisionFilterGroup=collisionFilterGroup;
	int c_arg_collisionFilterMask=collisionFilterMask;
	btSimpleBroadphaseProxy* wrap_out = new btSimpleBroadphaseProxy(c_arg_minpt,c_arg_maxpt,c_arg_shapeType,c_arg_userPtr,c_arg_collisionFilterGroup,c_arg_collisionFilterMask);
	return wrap_out;
}

int bullet_btSimpleBroadphaseProxy_GetFieldOfM_nextFree(btSimpleBroadphaseProxy* c_this){
	return (int)(c_this->m_nextFree);
}

int bullet_btSimpleBroadphaseProxy_GetNextFree(btSimpleBroadphaseProxy* c_this){
	int c_out = c_this->GetNextFree();
	int wrap_out = (c_out);
	return wrap_out;
}

void bullet_btSimpleBroadphaseProxy_SetNextFree(btSimpleBroadphaseProxy* c_this,int next){
	int c_arg_next=next;
	c_this->SetNextFree(c_arg_next);
}

btSimpleBroadphase* bullet_NewbtSimpleBroadphase(int maxProxies,btOverlappingPairCache* overlappingPairCache){
	int c_arg_maxProxies=maxProxies;
	btOverlappingPairCache * c_arg_overlappingPairCache=(btOverlappingPairCache *)(void*)(overlappingPairCache);
	btSimpleBroadphase* wrap_out = new btSimpleBroadphase(c_arg_maxProxies,c_arg_overlappingPairCache);
	return wrap_out;
}

bool bullet_btSimpleBroadphase_aabbOverlap(btSimpleBroadphase* c_this,btSimpleBroadphaseProxy* proxy0,btSimpleBroadphaseProxy* proxy1){
	btSimpleBroadphaseProxy * c_arg_proxy0=(btSimpleBroadphaseProxy *)(void*)(proxy0);
	btSimpleBroadphaseProxy * c_arg_proxy1=(btSimpleBroadphaseProxy *)(void*)(proxy1);
	bool c_out = c_this->aabbOverlap(c_arg_proxy0,c_arg_proxy1);
	bool wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btSimpleBroadphase_testAabbOverlap(btSimpleBroadphase* c_this,btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1){
	btBroadphaseProxy * c_arg_proxy0=(btBroadphaseProxy *)(void*)(proxy0);
	btBroadphaseProxy * c_arg_proxy1=(btBroadphaseProxy *)(void*)(proxy1);
	bool c_out = c_this->testAabbOverlap(c_arg_proxy0,c_arg_proxy1);
	bool wrap_out = (c_out);
	return wrap_out;
}

#ifdef __cplusplus
}
#endif
